package day1;

public class TestFunction {
    public static void main(String[] args) {
        //lambda表达式:是jdk1.8的特性,用于描述函数式接口的
        //语法：()->{}
        //->：就是一个固定的连接符
        //{}：表示抽象方法需要做方法实现部分
        //利用匿名内部类写的接口
        two t = new two() {
            public void a(int a, int b) {

            }
        };
        //利用lambda表达式来实现接口
        two t2 = (a,b)->{
            System.out.println("呵呵"+a+" "+b);
        };
        t2.a(100,200);
        //lambda表达式 如果方法带返回值,而且只有一行代码
        //正好就是方法的返回值 {} return都可以省略
        three t3 = (a,b)->{
            String num = a+b;
            int n = Integer.parseInt(num);
            return n;
        };
        three t4 = (a,b)-> Integer.parseInt(a+b);
    }
}
//普通接口：有1个以上的抽象方法
interface One{
    void one();
    void two();
    void three(int a,String b);
}
//函数式接口：里面有且只有一个抽象方法
//同时还可以通过@FunctionalInterface标注函数式接口
@FunctionalInterface
interface two{
    void a(int a,int b);
    default void b(){
    };
}
@FunctionalInterface
interface three{
    int a(int a,String b);
}